using System;
using System.Diagnostics.CodeAnalysis;

namespace TelnetExpect
{
    /// <summary>
    /// Telnet Option codes from <see href="http://www.iana.org/assignments/telnet-options"/>.
    /// </summary>
    [SuppressMessage("Microsoft.Design", "CA1028:EnumStorageShouldBeInt32",
       Justification = "Options are passed in a byte in many places."
        +"  (We expect to never need Extended Options; base currently allocated 50 off 256).")]
    public enum TelnetOption : byte
    {
#pragma warning disable 1591
        BinaryTransmission = 0,
        Echo = 1,
        Reconnection = 2,
        SuppressGoAhead = 3,
        ApproxMessageSizeNegotiation = 4,
        Status = 5,
        TimingMark = 6,
        RemoteControlledTransAndEcho = 7,
        OutputLineWidth = 8,
        OutputPageSize = 9,
        OutputCarriageReturnDisposition = 10,
        OutputHorizontalTabStops = 11,
        OutputHorizontalTabDisposition = 12,
        OutputFormFeedDisposition = 13,
        OutputVerticalTabStops = 14,
        OutputVerticalTabDisposition = 15,
        OutputLinefeedDisposition = 16,
        ExtendedAscii = 17,
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1726:UsePreferredTerms", MessageId = "Logout")]
        Logout = 18,
        ByteMacro = 19,
        DataEntryTerminal = 20,
        [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Supdup")]
        Supdup = 21,
        [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Supdup")]
        SupdupOutput = 22,
        SendLocation = 23,
        TerminalType = 24,
        EndOfRecord = 25,
        [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Tacacs")]
        TacacsUserIdentification = 26,
        OutputMarking = 27,
        TerminalLocationNumber = 28,
        Telnet3270Regime = 29,
        Xdot3Pad = 30,
        NegotiateAboutWindowSize = 31,
        TerminalSpeed = 32,
        RemoteFlowControl = 33,
        LineMode = 34,
        XDisplayLocation = 35,
        EnvironmentOption = 36,
        AuthenticationOption = 37,
        EncryptionOption = 38,
        NewEnvironmentOption = 39,
        TN3270E = 40,
        XAuth = 41,
        CharSet = 42,
        TelnetRemoteSerialPort = 43,
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1702:CompoundWordsShouldBeCasedCorrectly", MessageId = "ComPort")]
        ComPortControlOption = 44,
        TelnetSuppressLocalEcho = 45,
        TelnetStartTls = 46,
        Kermit = 47,
        SendUrl = 48,
        ForwardX = 49,
        // Unassigned = 50-137,
        TelOptPragmaLogOn = 138,
        [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Sspi")]
        TelOptSspiLogOn = 139,
        TelOptPragmaHeartbeat = 140,
        ExtendedOptionsList = 255,
#pragma warning restore 1591
    }

}
